home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Purity / Purity #42 (1995-01)(PackMAN)(DE)[WB].zip / Purity #42 (1995-01)(PackMAN)(DE)[WB].adf / Includes3v1 / Includes3v1.lha / Libraries / lowlevel.i < prev    next >
Text File  |  1994-12-04  |  8KB  |  279 lines

  1.   {      lowlevel.library interface structures and definitions.    }
  2.  
  3. {$I "Include:Utility/TagItem.i"}
  4.  
  5. Type
  6. { structure for use with QueryKeys() }
  7.  KeyQuery = Record
  8.     kq_KeyCode  : WORD;
  9.     kq_Pressed  : Boolean;
  10.  end;
  11.  KeyQueryPtr = ^KeyQuery;
  12.  
  13. {***************************************************************************}
  14.  
  15. Const
  16. { bits in the return value of GetKey() }
  17.  LLKB_LSHIFT     = 16;
  18.  LLKB_RSHIFT     = 17;
  19.  LLKB_CAPSLOCK   = 18;
  20.  LLKB_CONTROL    = 19;
  21.  LLKB_LALT       = 20;
  22.  LLKB_RALT       = 21;
  23.  LLKB_LAMIGA     = 22;
  24.  LLKB_RAMIGA     = 23;
  25.  
  26.  LLKF_LSHIFT     = 65536;
  27.  LLKF_RSHIFT     = 131072;
  28.  LLKF_CAPSLOCK   = 262144;
  29.  LLKF_CONTROL    = 524288;
  30.  LLKF_LALT       = 1048576;
  31.  LLKF_RALT       = 2097152;
  32.  LLKF_LAMIGA     = 4194304;
  33.  LLKF_RAMIGA     = 8388608;
  34.  
  35. {***************************************************************************}
  36.  
  37.  
  38. { Tags for SetJoyPortAttrs() }
  39.  SJA_Dummy        = (TAG_USER+$c00100);
  40.  SJA_Type         = (SJA_Dummy+1); { force type to mouse, joy, game cntrlr }
  41.  SJA_Reinitialize = (SJA_Dummy+2); { free potgo bits, reset to autosense   }
  42.  
  43. { Controller types for SJA_Type tag }
  44.  SJA_TYPE_AUTOSENSE = 0;
  45.  SJA_TYPE_GAMECTLR  = 1;
  46.  SJA_TYPE_MOUSE     = 2;
  47.  SJA_TYPE_JOYSTK    = 3;
  48.  
  49.  
  50. {***************************************************************************}
  51.  
  52.  
  53. { ReadJoyPort() return value definitions }
  54.  
  55. { Port types }
  56.  JP_TYPE_NOTAVAIL  = 0;          { port data unavailable    }
  57.  JP_TYPE_GAMECTLR  = 268435456;  { port has game controller }
  58.  JP_TYPE_MOUSE     = 536870912;  { port has mouse           }
  59.  JP_TYPE_JOYSTK    = 805306368;  { port has joystick        }
  60.  JP_TYPE_UNKNOWN   = 1073741824; { port has unknown device  }
  61.  JP_TYPE_MASK      = -268435456; { controller type          }
  62.  
  63. { Button types, valid for all types except JP_TYPE_NOTAVAIL }
  64.  JPB_BUTTON_BLUE    = 23;     { Blue - Stop; Right Mouse                }
  65.  JPB_BUTTON_RED     = 22;     { Red - Select; Left Mouse; Joystick Fire }
  66.  JPB_BUTTON_YELLOW  = 21;     { Yellow - Repeat                         }
  67.  JPB_BUTTON_GREEN   = 20;     { Green - Shuffle                         }
  68.  JPB_BUTTON_FORWARD = 19;     { Charcoal - Forward              }
  69.  JPB_BUTTON_REVERSE = 18;     { Charcoal - Reverse              }
  70.  JPB_BUTTON_PLAY    = 17;     { Grey - Play/Pause; Middle Mouse         }
  71.  JPF_BUTTON_BLUE    = 8388608;
  72.  JPF_BUTTON_RED     = 4194304;
  73.  JPF_BUTTON_YELLOW  = 2097152;
  74.  JPF_BUTTON_GREEN   = 1048576;
  75.  JPF_BUTTON_FORWARD = 524288;
  76.  JPF_BUTTON_REVERSE = 262144;
  77.  JPF_BUTTON_PLAY    = 131072;
  78.  JP_BUTTON_MASK     = JPF_BUTTON_BLUE OR JPF_BUTTON_RED OR JPF_BUTTON_YELLOW OR JPF_BUTTON_GREEN OR JPF_BUTTON_FORWARD OR JPF_BUTTON_REVERSE OR JPF_BUTTON_PLAY;
  79.  
  80. { Direction types, valid for JP_TYPE_GAMECTLR and JP_TYPE_JOYSTK }
  81.  JPB_JOY_UP        = 3;
  82.  JPB_JOY_DOWN      = 2;
  83.  JPB_JOY_LEFT      = 1;
  84.  JPB_JOY_RIGHT     = 0;
  85.  JPF_JOY_UP        = 8;
  86.  JPF_JOY_DOWN      = 4;
  87.  JPF_JOY_LEFT      = 2;
  88.  JPF_JOY_RIGHT     = 1;
  89.  JP_DIRECTION_MASK = JPF_JOY_UP OR JPF_JOY_DOWN OR JPF_JOY_LEFT OR JPF_JOY_RIGHT;
  90.  
  91. { Mouse position reports, valid for JP_TYPE_MOUSE }
  92.  JP_MHORZ_MASK     = 255;        { horzizontal position }
  93.  JP_MVERT_MASK     = 65280;      { vertical position    }
  94.  JP_MOUSE_MASK     = JP_MHORZ_MASK OR JP_MVERT_MASK;
  95.  
  96. { Obsolete ReadJoyPort() definitions, here for source code compatibility only.
  97.  * Please do NOT use in new code.
  98.  }
  99.  JPB_BTN1  = JPB_BUTTON_BLUE   ;
  100.  JPF_BTN1  = JPF_BUTTON_BLUE   ;
  101.  JPB_BTN2  = JPB_BUTTON_RED    ;
  102.  JPF_BTN2  = JPF_BUTTON_RED    ;
  103.  JPB_BTN3  = JPB_BUTTON_YELLOW ;
  104.  JPF_BTN3  = JPF_BUTTON_YELLOW ;
  105.  JPB_BTN4  = JPB_BUTTON_GREEN  ;
  106.  JPF_BTN4  = JPF_BUTTON_GREEN  ;
  107.  JPB_BTN5  = JPB_BUTTON_FORWARD;
  108.  JPF_BTN5  = JPF_BUTTON_FORWARD;
  109.  JPB_BTN6  = JPB_BUTTON_REVERSE;
  110.  JPF_BTN6  = JPF_BUTTON_REVERSE;
  111.  JPB_BTN7  = JPB_BUTTON_PLAY   ;
  112.  JPF_BTN7  = JPF_BUTTON_PLAY   ;
  113.  JPB_UP    = JPB_JOY_UP        ;
  114.  JPF_UP    = JPF_JOY_UP        ;
  115.  JPB_DOWN  = JPB_JOY_DOWN      ;
  116.  JPF_DOWN  = JPF_JOY_DOWN      ;
  117.  JPB_LEFT  = JPB_JOY_LEFT      ;
  118.  JPF_LEFT  = JPF_JOY_LEFT      ;
  119.  JPB_RIGHT = JPB_JOY_RIGHT     ;
  120.  JPF_RIGHT = JPF_JOY_RIGHT     ;
  121.  
  122.  
  123. {***************************************************************************}
  124.  
  125.  
  126. { Tags for SystemControl() }
  127.  SCON_Dummy         = (TAG_USER+$00C00000);
  128.  SCON_TakeOverSys   = (SCON_Dummy+0);
  129.  SCON_KillReq       = (SCON_Dummy+1);
  130.  SCON_CDReboot      = (SCON_Dummy+2);
  131.  SCON_StopInput     = (SCON_Dummy+3);
  132.  SCON_AddCreateKeys = (SCON_Dummy+4);
  133.  SCON_RemCreateKeys = (SCON_Dummy+5);
  134.  
  135. { Reboot control values for use with SCON_CDReboot tag }
  136.  CDReboot_On        =     1;
  137.  CDReboot_Off       =     0;
  138.  CDReboot_Default   =     2;
  139.  
  140.  
  141. {***************************************************************************}
  142.  
  143.  
  144. { Rawkey codes returned when using SCON_AddCreateKeys with SystemControl() }
  145.  
  146.  RAWKEY_PORT0_BUTTON_BLUE      =  $72;
  147.  RAWKEY_PORT0_BUTTON_RED       =  $78;
  148.  RAWKEY_PORT0_BUTTON_YELLOW    =  $77;
  149.  RAWKEY_PORT0_BUTTON_GREEN     =  $76;
  150.  RAWKEY_PORT0_BUTTON_FORWARD   =  $75;
  151.  RAWKEY_PORT0_BUTTON_REVERSE   =  $74;
  152.  RAWKEY_PORT0_BUTTON_PLAY      =  $73;
  153.  RAWKEY_PORT0_JOY_UP           =  $79;
  154.  RAWKEY_PORT0_JOY_DOWN         =  $7A;
  155.  RAWKEY_PORT0_JOY_LEFT         =  $7C;
  156.  RAWKEY_PORT0_JOY_RIGHT        =  $7B;
  157.  
  158.  RAWKEY_PORT1_BUTTON_BLUE      =  $172;
  159.  RAWKEY_PORT1_BUTTON_RED       =  $178;
  160.  RAWKEY_PORT1_BUTTON_YELLOW    =  $177;
  161.  RAWKEY_PORT1_BUTTON_GREEN     =  $176;
  162.  RAWKEY_PORT1_BUTTON_FORWARD   =  $175;
  163.  RAWKEY_PORT1_BUTTON_REVERSE   =  $174;
  164.  RAWKEY_PORT1_BUTTON_PLAY      =  $173;
  165.  RAWKEY_PORT1_JOY_UP           =  $179;
  166.  RAWKEY_PORT1_JOY_DOWN         =  $17A;
  167.  RAWKEY_PORT1_JOY_LEFT         =  $17C;
  168.  RAWKEY_PORT1_JOY_RIGHT        =  $17B;
  169.  
  170.  RAWKEY_PORT2_BUTTON_BLUE      =  $272;
  171.  RAWKEY_PORT2_BUTTON_RED       =  $278;
  172.  RAWKEY_PORT2_BUTTON_YELLOW    =  $277;
  173.  RAWKEY_PORT2_BUTTON_GREEN     =  $276;
  174.  RAWKEY_PORT2_BUTTON_FORWARD   =  $275;
  175.  RAWKEY_PORT2_BUTTON_REVERSE   =  $274;
  176.  RAWKEY_PORT2_BUTTON_PLAY      =  $273;
  177.  RAWKEY_PORT2_JOY_UP           =  $279;
  178.  RAWKEY_PORT2_JOY_DOWN         =  $27A;
  179.  RAWKEY_PORT2_JOY_LEFT         =  $27C;
  180.  RAWKEY_PORT2_JOY_RIGHT        =  $27B;
  181.  
  182.  RAWKEY_PORT3_BUTTON_BLUE      =  $372;
  183.  RAWKEY_PORT3_BUTTON_RED       =  $378;
  184.  RAWKEY_PORT3_BUTTON_YELLOW    =  $377;
  185.  RAWKEY_PORT3_BUTTON_GREEN     =  $376;
  186.  RAWKEY_PORT3_BUTTON_FORWARD   =  $375;
  187.  RAWKEY_PORT3_BUTTON_REVERSE   =  $374;
  188.  RAWKEY_PORT3_BUTTON_PLAY      =  $373;
  189.  RAWKEY_PORT3_JOY_UP           =  $379;
  190.  RAWKEY_PORT3_JOY_DOWN         =  $37A;
  191.  RAWKEY_PORT3_JOY_LEFT         =  $37C;
  192.  RAWKEY_PORT3_JOY_RIGHT        =  $37B;
  193.  
  194.  
  195. {***************************************************************************}
  196.  
  197.  
  198. { Return values for GetLanguageSelection() }
  199.  LANG_UNKNOWN    = 0 ;
  200.  LANG_AMERICAN   = 1 ;      { American English }
  201.  LANG_ENGLISH    = 2 ;      { British English  }
  202.  LANG_GERMAN     = 3 ;
  203.  LANG_FRENCH     = 4 ;
  204.  LANG_SPANISH    = 5 ;
  205.  LANG_ITALIAN    = 6 ;
  206.  LANG_PORTUGUESE = 7 ;
  207.  LANG_DANISH     = 8 ;
  208.  LANG_DUTCH      = 9 ;
  209.  LANG_NORWEGIAN  = 10;
  210.  LANG_FINNISH    = 11;
  211.  LANG_SWEDISH    = 12;
  212.  LANG_JAPANESE   = 13;
  213.  LANG_CHINESE    = 14;
  214.  LANG_ARABIC     = 15;
  215.  LANG_GREEK      = 16;
  216.  LANG_HEBREW     = 17;
  217.  LANG_KOREAN     = 18;
  218.  
  219.  
  220. {***************************************************************************}
  221.  
  222.  
  223. { --- functions in V40 or higher (Release 3.1) --- }
  224.  
  225. { CONTROLLER HANDLING }
  226. FUNCTION ReadJoyPort(Port : Integer) : Integer;
  227.     External;
  228.  
  229. { LANGUAGE HANDLING }
  230. FUNCTION GetLanguageSelection : Byte;
  231.     External;
  232.  
  233. { KEYBOARD HANDLING }
  234. FUNCTION GetKey : Integer;
  235.     External;
  236.  
  237. PROCEDURE QueryKeys(QueryArray : KeyQueryPtr; arraysize : Integer);
  238.     External;
  239.  
  240. FUNCTION AddKBInt(intRoutine, intData : Address) : Address;
  241.     External;
  242.  
  243. PROCEDURE RemKBInt(intHandle : Address);
  244.     External;
  245.  
  246. { SYSTEM HANDLING }
  247. FUNCTION SystemControlA(TagList : Address) : Integer;
  248.     External;
  249.  
  250. { TIMER HANDLING }
  251. FUNCTION AddTimerInt(intRoutine, intData : Address) : Address;
  252.     External;
  253.  
  254. PROCEDURE RemTimerInt(intHandle : Address);
  255.     External;
  256.  
  257. PROCEDURE StopTimerInt(intHandle : Address);
  258.     External;
  259.  
  260. PROCEDURE StartTimerInt(intHandle : Address; timeInterval, continuous : Integer);
  261.     External;
  262.  
  263. FUNCTION ElapsedTime(context : Address) : Integer;
  264.     External;
  265.  
  266. { VBLANK HANDLING }
  267. FUNCTION AddVBlankInt(intRoutine, intData : Address) : Address;
  268.     External;
  269.  
  270. PROCEDURE RemVBlankInt(intHandle : Address);
  271.     External;
  272.  
  273. { MORE CONROLLER HANDLING }
  274. FUNCTION SetJoyPortAttrsA(PortNumber : Integer; TagList : Address) : Boolean;
  275.     External;
  276.  
  277.  
  278.  
  279.